1单选以下有关IA-32和x86-64之间比较的叙述中,错误的是()。
A.IA-32的通用寄存器为8/16/32位,而x86-64的通用寄存器为8/16/32/64位
B.IA-32的字长为32位,x86-64的字长为64位并兼容IA-32
C.(unsigned)long型变量在IA-32和x86-64中的长度都是64位(四字)
D.IA-32的通用寄存器有8个,而x86-64的通用寄存器有16个
2单选以下有关x86-64寄存器的叙述中,错误的是()。
A.128位的XMM寄存器从原来IA-32中的8个增加到16个
B.任何浮点操作数都被分配在浮点寄存器栈(ST(0)~ST(7))中
C.基址寄存器和编址寄存器都可以是任意一个64位的通用寄存器
D.用来存放将要执行的指令的地址的指令指针寄存器为64位的RIP
3单选以下有关x86-64对齐方式的叙述中,错误的是()。
A.short型数据必须按2字节边界对齐
B.long、double、指针型数据必须按8字节边界对齐
C.int、float型数据必须按4字节边界对齐
D.longdouble型数据在内存占12字节空间(96位)
4单选以下有关x86-64传送指令的叙述中,错误的是()。
A.相比IA-32,增加了movq指令,可传送64位数据
B.pushq和popq分别对ESP寄存器减8和加8
C.movl相当于movzlq,能将目的寄存器高32位清0
D.movzbq的功能是将8位寄存器内容零扩展为64位
5单选假定变量x的类型为int,对于变量y的初始化声明“longy=(long)x;”,其对应的汇编指令是()。
A.movslq%edx,%rax
B.movl%edx,%eax
C.movq%rdx,%rax
D.movzlq%edx,%rax
计算机系统基础(一):程序的表示、转换与链接
南京大学
军职在线答案
大学网课